


/*
判断是否属于某个父类
bool a= item is Class
 */
abstract class XDartUtils{


  //获得对象类型名称
  static String getRuntimeTypeName(Object obj){

    //注意: iOS的obj.runtimeType.toString()为空,
    String typeName='${obj.runtimeType}';
    // if(XFlutterUtils.isiOS() || XFlutterUtils.isMacOS()){
    //  typeName='${obj.runtimeType}';
    // }else{
    //   typeName=obj.runtimeType.toString();
    // }

    return typeName;
  }

  /*
  获得数据类型名称
   */
  static String getDataItemClassName(dynamic obj){

    String typeName=getRuntimeTypeName(obj);
    //XLogUtils.printLog('---typeName=$typeName');

    if(typeName.contains('<')){
      int index=typeName.indexOf('<');
      typeName=typeName.substring(0,index);

      if(typeName.toLowerCase().startsWith('listqueue')){
        return 'Queue';
      }else if(typeName.toLowerCase().startsWith('_list')||typeName.toLowerCase().startsWith('list')){
        //包括Uint8List
        return 'List';
      }else if(typeName.toLowerCase().startsWith('_map')|| typeName.toLowerCase().startsWith('map')){
        return 'Map';
      }else if(typeName.toLowerCase().startsWith('_set')||typeName.toLowerCase().startsWith('set')){
        return 'Set';
      }

    }

    //String,Null,int,double
    return typeName;
  }



}

